jsx3.require("jsx3.gui.Matrix");
/**
* com package
*/
jsx3.lang.Package.definePackage("com", function(ux) {
});
/**
 * com.gix package
 */
jsx3.lang.Package.definePackage("com.gix", function(ux) {
});
/**
 * com.gix.gui package
 */
jsx3.lang.Package.definePackage("com.gix.gui", function(ux) {
});
/**
* Prototype class object to create a specialized block object with built-in basic benchmarking in the repaint calls
**/
jsx3.Class.defineClass(
        "com.gix.gui.Block",
        jsx3.gui.Block,
        null,
        function (block) {


            /**
             * instance initializer
             * @param strName {String} unique name distinguishing this object from all other JSX GUI objects in the JSX application
             * @param vntLeft {int|String} either a number (i.e, 12, 30, etc) or a number and a unit value (i.e., "25%", "36pt", etc); if a number is passed, pixels will be the assumed unit when painted to screen
             * @param vntTop {int|String} either a number (i.e, 12, 30, etc) or a number and a unit value (i.e., "25%", "36pt", etc); if a number is passed, pixels will be the assumed unit when painted to screen
             * @param vntWidth {int|String} either a number (i.e, 12, 30, etc) or a number and a unit value (i.e., "25%", "36pt", etc); if a number is passed, pixels will be the assumed unit when painted to screen
             * @param vntHeight {int|String} either a number (i.e, 12, 30, etc) or a number and a unit value (i.e., "25%", "36pt", etc); if a number is passed, pixels will be the assumed unit when painted to screen
             * @param strHTML {String} Text/HTML markup to place in the jsx3.gui.Block instance
             */
            block.prototype.init = function(strName, vntLeft, vntTop, vntWidth, vntHeight, strHTML) {
                //call constructor for super class (the super expects the name of the object and the function that it is an instance of)
                this.jsxsuper(strName, vntLeft, vntTop, vntWidth, vntHeight, strHTML);


            };

            /* @JSC :: begin BENCH */

            /**
             * Updates the view of this object by calling <code>paint()</code> and replacing the current view with the
             * returned HTML. This method has no effect if this object is not currently displayed.
             * <br /><br />
             * Automatically prints abasic benchmarking line on this function to the BENCHMARK log (at the debug log-level)
             *
             * @return {String} the result of calling <code>paint()</code> or <code>null</code> if this object is not displayed.
             * @see #paint()
             */
            block.prototype.repaint = function() {
                var before = new Date().getTime();
                var dump = this.jsxsuper();
                var since = new Date().getTime() - before
                ux.admin.util.Log.BENCHMARK.debug("Repainting the Block " + this.getName() + " takes about " + since + " ms");
                return dump
            };

            /* @JSC :: end */

        }
        )